{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f202\froman\fcharset238\fprq2 Times New Roman CE;}{\f203\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f205\froman\fcharset161\fprq2 Times New Roman Greek;}{\f206\froman\fcharset162\fprq2 Times New Roman Tur;}
{\f207\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f208\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f209\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f210\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\f212\fswiss\fcharset238\fprq2 Arial CE;}{\f213\fswiss\fcharset204\fprq2 Arial Cyr;}{\f215\fswiss\fcharset161\fprq2 Arial Greek;}{\f216\fswiss\fcharset162\fprq2 Arial Tur;}{\f217\fswiss\fcharset177\fprq2 Arial (Hebrew);}
{\f218\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f219\fswiss\fcharset186\fprq2 Arial Baltic;}{\f220\fswiss\fcharset163\fprq2 Arial (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;
\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;
\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{
\s1\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f1\fs32\lang1033\langfe1033\kerning32\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \styrsid10703373 heading 1;}{
\s2\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\i\f1\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \styrsid10703373 heading 2;}{
\s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \styrsid10703373 heading 3;}{\*\cs10 \additive \ssemihidden 
Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv 
\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}{\*\cs15 \additive \ul\cf2 \sbasedon10 \styrsid12675304 Hyperlink;}{\*\cs16 \additive 
\ul\cf12 \sbasedon10 \styrsid1013904 FollowedHyperlink;}}{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid32378\rsid89361\rsid283711\rsid1013904\rsid1408106\rsid1655678\rsid2432963\rsid2497976\rsid2643707\rsid2652793\rsid2829749\rsid2845617
\rsid3099116\rsid3149574\rsid3160347\rsid3218881\rsid3435944\rsid5074900\rsid5184116\rsid5450346\rsid5571757\rsid5781541\rsid6037321\rsid6041525\rsid6320072\rsid6509737\rsid6562733\rsid6624400\rsid6706447\rsid6771254\rsid7427807\rsid7563147\rsid7686316
\rsid7876934\rsid7887376\rsid8158488\rsid8551083\rsid8872195\rsid8983329\rsid9324333\rsid9589650\rsid9853054\rsid10515867\rsid10703373\rsid10833686\rsid10834977\rsid10842059\rsid11559080\rsid11603567\rsid11948210\rsid12351029\rsid12477343\rsid12478443
\rsid12480469\rsid12675304\rsid12737063\rsid12913132\rsid13316648\rsid13446123\rsid13980339\rsid14309294\rsid14573838\rsid14746123\rsid15220984\rsid15286429\rsid15363971\rsid15475844\rsid15539938\rsid15543112\rsid15741723\rsid15932462\rsid15950545
\rsid16008867\rsid16277176\rsid16450858\rsid16592294}{\*\generator Microsoft Word 11.0.6502;}{\info{\title DirectShowLib Version 1}{\author David Wohlferd}{\operator David Wohlferd}{\creatim\yr2005\mo6\dy17\hr16\min11}{\revtim\yr2005\mo7\dy5\hr22\min21}
{\version18}{\edmins74}{\nofpages5}{\nofwords1550}{\nofchars8837}{\*\company Personal Copy}{\nofcharsws10367}{\vern24579}}\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind4\viewscale100\nolnhtadjtbl\rsidroot2845617 \fet0\sectd \linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang 
{\pntxtb (}{\pntxta )}}\pard\plain \s1\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs32\lang1033\langfe1033\kerning32\cgrid\langnp1033\langfenp1033 {
\insrsid15475844\charrsid1655678 WindowsMedia}{\insrsid5450346\charrsid1655678 Lib Version }{\insrsid12351029 0.9}{\insrsid5450346\charrsid1655678 
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0\pararsid5450346 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid5450346 
\par }{\f1\fs20\insrsid1655678 THIS LIBRARY IS ALMOST COMPLETELY UNTESTED.  While some people may find it to be useful, use at your own risk.  Please report any bugs or corrections you find at }{\field{\*\fldinst {\f1\fs20\insrsid1655678  HYPERLINK "}{
\f1\fs20\insrsid1655678\charrsid1655678 http://sourceforge.net/tracker/?group_id=136334&atid=735691}{\f1\fs20\insrsid1655678 " }{\f1\fs20\insrsid1655678\charrsid4524050 {\*\datafield 
00d0c9ea79f9bace118c8200aa004ba90b02000000170000003c00000068007400740070003a002f002f0073006f00750072006300650066006f007200670065002e006e00650074002f0074007200610063006b00650072002f003f00670072006f00750070005f00690064003d0031003300360033003300340026006100
7400690064003d003700330035003600390031000000e0c9ea79f9bace118c8200aa004ba90b7800000068007400740070003a002f002f0073006f00750072006300650066006f007200670065002e006e00650074002f0074007200610063006b00650072002f003f00670072006f00750070005f00690064003d00310033
003600330033003400260061007400690064003d003700330035003600390031000000}}}{\fldrslt {\cs15\f1\fs20\ul\cf2\insrsid1655678\charrsid4524050 http://sourceforge.net/tracker/?group_id=136334&atid=735691}}}{\f1\fs20\insrsid1655678 . }{
\f1\fs20\insrsid1655678\charrsid1655678 
\par }{\f1\fs20\insrsid5450346\charrsid1655678 Version}{\f1\fs20\insrsid1655678  0.9}{\f1\fs20\insrsid5450346\charrsid1655678  of the }{\f1\fs20\insrsid15475844\charrsid1655678 WindowsMedia}{\f1\fs20\insrsid5450346\charrsid1655678 Lib library is the r
esult of work done by:
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid5450346 {\f1\fs20\insrsid5450346\charrsid1655678 David Wohlferd (}{\field\flddirty{\*\fldinst {\f1\fs20\insrsid5450346\charrsid1655678  HYPERLINK "mailto:snarfle@users.SourceForge.net" }{
\f1\fs20\insrsid13980339\charrsid1655678 {\*\datafield 
00d0c9ea79f9bace118c8200aa004ba90b02000000170000001e00000073006e006100720066006c0065004000750073006500720073002e0053006f00750072006300650046006f007200670065002e006e00650074000000e0c9ea79f9bace118c8200aa004ba90b4a0000006d00610069006c0074006f003a0073006e00
6100720066006c0065004000750073006500720073002e0053006f00750072006300650046006f007200670065002e006e006500740000000000000000000000}}}{\fldrslt {\cs15\f1\fs20\ul\cf2\insrsid5450346\charrsid1655678 snarfle@users.SourceForge.net}}}{
\f1\fs20\insrsid5450346\charrsid1655678 )
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid2845617\charrsid1655678 
Purpose of this library - What it is, what it isn't
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid1655678\charrsid1655678 Todo}{\f1\fs20\insrsid9853054\charrsid1655678 
\par Reviewing the source code will show that there is very little executable code}{\f1\fs20\insrsid15741723\charrsid1655678  in this library}{\f1\fs20\insrsid9853054\charrsid1655678 .  There are a few helper functions (mostly in }{
\f1\fs20\insrsid1655678\charrsid1655678 WM}{\f1\fs20\insrsid9853054\charrsid1655678 Utils.cs), but everything else in the library is just definitions.
\par }{\f1\fs20\insrsid1655678\charrsid1655678 Todo}{\f1\fs20\insrsid12477343\charrsid1655678 
\par }{\f1\fs20\insrsid9853054\charrsid1655678 In addition to the library, a number of samples are provided showing how to use the library to accomplish general purpose tasks.
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid15741723\charrsid1655678 Licensing questions

\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0\pararsid15741723 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid15741723\charrsid1655678 This library is licensed under }{
\f1\fs20\insrsid7427807\charrsid1655678 GNU LESSER GENERAL PUBLIC LICENSE}{\f1\fs20\insrsid15741723\charrsid1655678 , }{\f1\fs20\insrsid7427807\charrsid1655678 Version 2.1}{\f1\fs20\insrsid15741723\charrsid1655678 .}{
\f1\fs20\insrsid7427807\charrsid1655678   See license.txt for the complete text.}{\f1\fs20\insrsid15741723\charrsid1655678 
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid2845617\charrsid1655678 
Supported platforms, languages}{\fs20\insrsid2845617\charrsid1655678 
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid2845617\charrsid1655678 
This library is usable from C# and VB.NET, and should work from other .NET compatible languages.  It was tested against }{\f1\fs20\insrsid15475844\charrsid1655678 Windows Media}{\f1\fs20\insrsid2845617\charrsid1655678  version 9 on Windows XP}{
\f1\fs20\insrsid9853054\charrsid1655678  using the 1.1 .NET framework}{\f1\fs20\insrsid2845617\charrsid1655678 .}{\f1\insrsid2845617\charrsid1655678 
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid2845617\charrsid1655678 
{\*\bkmkstart _Ref106788285}Where to find the documentation}{\fs20\insrsid2845617\charrsid1655678 {\*\bkmkend _Ref106788285}
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid2845617\charrsid1655678 Since the purpose of this library is to allow for the calling of the }{
\f1\fs20\insrsid15475844\charrsid1655678 Windows Media }{\f1\fs20\insrsid2845617\charrsid1655678 interfaces, the primary source of documentation is MSDN.  You can find DirectShow documentation (today at least) at}{\f1\fs20\insrsid15539938\charrsid1655678 
 }{\field\flddirty{\*\fldinst {\f1\fs20\insrsid15539938\charrsid1655678  HYPERLINK "http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmform95/htm/introducingwindowsmediaformat.asp" }{\f1\fs20\insrsid13980339\charrsid1655678 {\*\datafield 
00d0c9ea79f9bace118c8200aa004ba90b02000000170000007000000068007400740070003a002f002f006d00730064006e002e006d006900630072006f0073006f00660074002e0063006f006d002f006c006900620072006100720079002f00640065006600610075006c0074002e006100730070003f00750072006c00
3d002f006c006900620072006100720079002f0065006e002d00750073002f0077006d0066006f0072006d00390035002f00680074006d002f0069006e00740072006f0064007500630069006e006700770069006e0064006f00770073006d00650064006900610066006f0072006d00610074002e006100730070000000e0
c9ea79f9bace118c8200aa004ba90be000000068007400740070003a002f002f006d00730064006e002e006d006900630072006f0073006f00660074002e0063006f006d002f006c006900620072006100720079002f00640065006600610075006c0074002e006100730070003f00750072006c003d002f006c0069006200
72006100720079002f0065006e002d00750073002f0077006d0066006f0072006d00390035002f00680074006d002f0069006e00740072006f0064007500630069006e006700770069006e0064006f00770073006d00650064006900610066006f0072006d00610074002e00610073007000000000}}}{\fldrslt {
\cs15\f1\fs20\ul\cf2\insrsid15539938\charrsid1655678 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmform95/htm/introducingwindowsmediaformat.asp}}}{\f1\fs20\insrsid2845617\charrsid1655678 .  The interfaces are documented in the }{
\f1\fs20\insrsid9853054\charrsid1655678 \'93}{\f1\fs20\insrsid15475844\charrsid1655678 Interfaces}{\f1\fs20\insrsid9853054\charrsid1655678 \'94 section}{\f1\fs20\insrsid15475844\charrsid1655678 .}{\f1\fs20\insrsid2845617\charrsid1655678 
\par }{\f1\fs20\insrsid9853054\charrsid1655678 The few helper classes }{\f1\fs20\insrsid15475844\charrsid1655678 that }{\f1\fs20\insrsid9853054\charrsid1655678 have }{\f1\fs20\insrsid15475844\charrsid1655678 been }{\f1\fs20\insrsid9853054\charrsid1655678 
added are documented below in }{\f1\fs20\insrsid7887376\charrsid1655678 \'93}{\field\flddirty{\*\fldinst {\f1\fs20\insrsid6706447\charrsid1655678  REF _Ref106788262 \\h }{\f1\fs20\insrsid13980339\charrsid1655678 {\*\datafield 
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0052006500660031003000360037003800380032003600320000000000000000}}{\f1\fs20\insrsid1655678  \\* MERGEFORMAT }}{\fldrslt {\f1\insrsid6706447\charrsid1655678 Helper Classes}}}{
\f1\fs20\insrsid7887376\charrsid1655678 \'94}{\f1\fs20\insrsid9853054\charrsid1655678 .}{\f1\fs20\insrsid2845617 
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid1655678 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid1655678 Using WindowsMediaLib with DirectShowLib

\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid1655678 
In general, these two libraries should work well together.  If you are using both, make sure you do NOT use \'93using WindowsMediaLib.Defs;\'94 as all items in that namespace are already defined in DirectShowLib.}{\f1\insrsid1655678\charrsid1655678 

\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid2845617\charrsid1655678 
Differences between MSDN docs and using our library
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\insrsid16277176\charrsid1655678 It most cases,
 you should expect that you call the interface methods the same way MSDN says it should be called.  }{\f1\insrsid2845617\charrsid1655678 
The primary differences between our definitions and those found on MSDN are places where MSDN documents methods returning an int, but then say}{\f1\insrsid16277176\charrsid1655678 s}{\f1\insrsid2845617\charrsid1655678  the content 
of the int is some enum.  We change the definition to be the enum.  
\par }{\f1\insrsid9853054\charrsid1655678 The names of the structures and enum have been changed to use a more .NET friendly style: AM_SAMPLE2_PROPERTIES -> AMSample2Properties}{\f1\insrsid1408106\charrsid1655678 
.  Note that the original C++ structure or enum name is provided in comments above the declaration.  If there is some specific declaration you need to find, do a scan of the }{\f1\insrsid16277176\charrsid1655678 library\rquote s }{
\f1\insrsid1408106\charrsid1655678 source file}{\f1\insrsid16277176\charrsid1655678 s}{\f1\insrsid1408106\charrsid1655678  for the name.}{\f1\insrsid9853054\charrsid1655678 
\par }{\f1\insrsid7887376\charrsid1655678 Also see the sections below on \'93}{\field\flddirty{\*\fldinst {\f1\insrsid6706447\charrsid1655678  REF _Ref106788322 \\h }{\f1\insrsid13980339\charrsid1655678 {\*\datafield 
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0052006500660031003000360037003800380033003200320000000000000000}}{\f1\insrsid1655678  \\* MERGEFORMAT }}{\fldrslt {\f1\insrsid6706447\charrsid1655678 How and when to use Marshal.ReleaseComObject
()}}}{\f1\insrsid7887376\charrsid1655678 \'94 and \'93}{\field\flddirty{\*\fldinst {\f1\insrsid6706447\charrsid1655678  REF _Ref106788341 \\h }{\f1\insrsid13980339\charrsid1655678 {\*\datafield 
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f00520065006600310030003600370038003800330034003100000000}}{\f1\insrsid1655678  \\* MERGEFORMAT }}{\fldrslt {\f1\insrsid15475844\charrsid1655678 
Releasing memory to avoid leaks (Marshal.FreeCoTaskMem, FreeWMMediaType)}}}{\f1\insrsid15475844\charrsid1655678 .}{\f1\insrsid7887376\charrsid1655678 \'94
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid12675304\charrsid1655678 
How Visual Basic is different
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\insrsid15475844\charrsid1655678 Todo}{\f1\insrsid12675304\charrsid1655678 
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid2845617\charrsid1655678 
{\*\bkmkstart _Ref106788322}How and when to use Marshal.ReleaseComObject(){\*\bkmkend _Ref106788322}
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid2845617\charrsid1655678 .NET has a built-in limitation when handling COM methods.  }{
\f1\fs20\insrsid5571757\charrsid1655678 This problem affects any .NET class calling COM, not just our library.  }{\f1\fs20\insrsid2845617\charrsid1655678 The problem }{\f1\fs20\insrsid14746123\charrsid1655678 description }{
\f1\fs20\insrsid2845617\charrsid1655678 is }{\f1\fs20\insrsid14746123\charrsid1655678 rather }{\f1\fs20\insrsid2845617\charrsid1655678 involved, but boils down to two }{\f1\fs20\insrsid14746123\charrsid1655678 key }{
\f1\fs20\insrsid2845617\charrsid1655678 facts:
\par 1) Objects in .NET aren't released as soon as they go out of scope.  You have to wait for the }{\f1\fs20\insrsid10834977\charrsid1655678 G}{\f1\fs20\insrsid2845617\charrsid1655678 arbage }{\f1\fs20\insrsid10834977\charrsid1655678 C}{
\f1\fs20\insrsid2845617\charrsid1655678 ollector to free them.  As a result, you may get "in use" errors for items you thought should be released.  GC.Collect may help}{\f1\fs20\insrsid14746123\charrsid1655678  with this}{
\f1\fs20\insrsid2845617\charrsid1655678 .  Also, you can use Marshal.ReleaseComObject.  However, that may introduce other problems (see #2).
\par 2) If you create a }{\f1\fs20\insrsid3099116\charrsid1655678 COM}{\f1\fs20\insrsid2845617\charrsid1655678  object, then do 
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid14746123 {\f1\fs20\insrsid14746123\charrsid1655678 IGraphBuilder  graphBuilder = (IGraphBuilder) new FilterGraph();
\par IMediaControl  imc}{\f1\fs20\insrsid2845617\charrsid1655678  = }{\f1\fs20\insrsid14746123\charrsid1655678 graphBuilder}{\f1\fs20\insrsid2845617\charrsid1655678  as }{\f1\fs20\insrsid14746123\charrsid1655678 IMediaControl}{
\f1\fs20\insrsid2845617\charrsid1655678 ;
\par }\pard \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 {\f1\fs20\insrsid2845617\charrsid1655678 Calling Marshal.ReleaseComObject on either }{\f1\fs20\insrsid14746123\charrsid1655678 graphBuilder }{\f1\fs20\insrsid2845617\charrsid1655678 or }{
\f1\fs20\insrsid14746123\charrsid1655678 imc }{\f1\fs20\insrsid2845617\charrsid1655678 will invalidate BOTH }{\f1\fs20\insrsid14746123\charrsid1655678 graphBuilder }{\f1\fs20\insrsid2845617\charrsid1655678 and }{\f1\fs20\insrsid14746123\charrsid1655678 
imc}{\f1\fs20\insrsid2845617\charrsid1655678 .  For a good article on this, }{\f1\fs20\insrsid10834977\charrsid1655678 read }{\f1\fs20\insrsid2845617\charrsid1655678 Chris Brumme's weblog at }{\field\flddirty{\*\fldinst {
\f1\fs20\insrsid10834977\charrsid1655678  HYPERLINK "http://blogs.msdn.com/cbrumme/archive/2003/04/16/51355.aspx" }{\f1\fs20\insrsid13980339\charrsid1655678 {\*\datafield 
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7800000068007400740070003a002f002f0062006c006f00670073002e006d00730064006e002e0063006f006d002f0063006200720075006d006d0065002f0061007200630068006900760065002f00320030003000
33002f00300034002f00310036002f00350031003300350035002e00610073007000780000000000000000000000000000}}}{\fldrslt {\cs15\f1\fs20\ul\cf2\insrsid2845617\charrsid1655678 http://blogs.msdn.com/cbrumme/archive/2003/04/16/51355.aspx}}}{
\f1\fs20\insrsid2845617\charrsid1655678 .
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid2845617\charrsid1655678 
{\*\bkmkstart _Ref106788341}Releasing memory to avoid leaks (Marshal.Fre}{\insrsid15475844\charrsid1655678 eCoTaskMem, FreeWMMediaType}{\insrsid2845617\charrsid1655678 ){\*\bkmkend _Ref106788341}
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid2845617\charrsid1655678 
Some of the interfaces in DirectShow allocate memory that needs to be released by the caller.  Make sure you read the }{\f1\fs20\insrsid5571757\charrsid1655678 MSDN }{\f1\fs20\insrsid2845617\charrsid1655678 do
cs for any methods you are calling to ensure that you know when you are required to release memory.  Be aware that memory allocated by COM objects isn't automatically freed }{\f1\fs20\insrsid5571757\charrsid1655678 by the Garbage Collector }{
\f1\fs20\insrsid2845617\charrsid1655678 like memory allocated for you by most .NET functions.
\par Some specific examples of methods that require you to free memory, along with the excerpt from the MSDN docs that lets you know }{\f1\fs20\insrsid7563147\charrsid1655678 how the }{\f1\fs20\insrsid2845617\charrsid1655678 memory must be freed.}{
\f1\fs20\insrsid7563147\charrsid1655678   For each example, the .NET equivalent method is described.}{\f1\fs20\insrsid2845617\charrsid1655678 
\par }{\f1\fs20\insrsid15475844\charrsid1655678 Todo \endash  update to use wm interfaces as examples
\par }{\f1\fs20\insrsid2845617\charrsid1655678 IOverlay::GetClipList: }{\i\f1\insrsid2845617\charrsid1655678 If successful, the Microsoft\'ae Win32\'ae }{\b\i\f1\insrsid2845617\charrsid1655678 CoTaskMemFree}{\i\f1\insrsid2845617\charrsid1655678 
 function should free memory.}{\f1\insrsid2845617\charrsid1655678  Use Marshal.FreeCoTaskMem to release this memory.
\par IMediaSample::GetMediaType: }{\i\f1\insrsid2845617\charrsid1655678 When you are done with the media type, free the memory block by calling the }{\field\flddirty{\*\fldinst {\b\i\f1\fs20\insrsid2845617\charrsid1655678 HYPERLINK "deletemediatype.htm"}{
\b\i\f1\fs20\insrsid13980339\charrsid1655678 {\*\datafield 
00d0c9ea79f9bace118c8200aa004ba90b0200000001000000e0c9ea79f9bace118c8200aa004ba90b6600000053006f00750072006300650046006f007200670065002f00640069007200650063007400730068006f0077006c00690062002f0044006f00630073002f00640065006c006500740065006d00650064006900
610074007900700065002e00680074006d000000000000000000}}}{\fldrslt {\i\f1\fs20\insrsid2845617\charrsid1655678 DeleteMediaType}}}{\i\f1\fs20\insrsid2845617\charrsid1655678  }{\i\f1\insrsid2845617\charrsid1655678 utility function.}{
\f1\insrsid2845617\charrsid1655678   Use DsUtils.Free}{\f1\insrsid15475844\charrsid1655678 W}{\f1\insrsid2845617\charrsid1655678 MMediaType() to free this object.
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid7887376\charrsid1655678 
{\*\bkmkstart _Ref106788262}Helper Classes{\*\bkmkend _Ref106788262}
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0\pararsid7887376 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid7887376\charrsid1655678 While the libra
ry primarily just provides mappings to the DirectShow interfaces, there are a few helper functions we have added that may be useful:
\par }{\b\f1\fs20\insrsid15475844\charrsid1655678 Ns}{\b\f1\fs20\insrsid7887376\charrsid1655678 Results}{\f1\fs20\insrsid7887376\charrsid1655678  \endash  This class consists of }{\f1\fs20\insrsid15475844\charrsid1655678 Windows Media }{
\f1\fs20\insrsid7887376\charrsid1655678 specific error and status codes.  It }{\f1\fs20\insrsid7563147\charrsid1655678 is based on}{\f1\fs20\insrsid15475844\charrsid1655678  NsError}{\f1\fs20\insrsid7887376\charrsid1655678 
.h.  Note that it does NOT include regular COM error codes such as might be found in winerror.h.  These codes can be used to check for known error conditions:
\par }\pard \ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0\pararsid7887376 {\f1\fs20\insrsid7887376\charrsid1655678 hr = iSomething.DoSomething();
\par }{\f1\fs20\cf2\insrsid7887376\charrsid1655678 if}{\f1\fs20\insrsid7887376\charrsid1655678  (hr == }{\f1\fs20\insrsid15475844\charrsid1655678 N}{\f1\fs20\insrsid7887376\charrsid1655678 sResults.E_NotConnected)
\par    }{\f1\fs20\cf11\insrsid7887376\charrsid1655678 // Try connecting
\par }\pard \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0\pararsid7887376 {\b\f1\fs20\insrsid1013904\charrsid1655678 N}{\b\f1\fs20\insrsid7887376\charrsid1655678 sUtils}{\f1\fs20\insrsid7887376\charrsid1655678  \endash  This class contains }{
\f1\fs20\insrsid1013904\charrsid1655678 one method}{\f1\fs20\insrsid7887376\charrsid1655678 :
\par Free}{\f1\fs20\insrsid1655678 A}{\f1\fs20\insrsid7887376\charrsid1655678 MMediaType \endash 
 This method should be called to release any AMMediaType structures.  Do not depend on the Garbage Collector to correctly release AMMediaType structures.  It is the .NET implementation of the MSDN }{\f1\fs20\insrsid7563147\charrsid1655678 function }{
\f1\fs20\insrsid7887376\charrsid1655678 DeleteMediaType}{\f1\fs20\insrsid7563147\charrsid1655678 ()}{\f1\fs20\insrsid7887376\charrsid1655678 .
\par }{\b\f1\fs20\insrsid7887376\charrsid1655678 DsToString}{\f1\fs20\insrsid7887376\charrsid1655678  \endash }{\f1\fs20\insrsid3218881\charrsid1655678  }{\f1\fs20\insrsid7887376\charrsid1655678 This class turns }{\f1\fs20\insrsid3218881\charrsid1655678 
mediatype }{\f1\fs20\insrsid7887376\charrsid1655678 structures }{\f1\fs20\insrsid3218881\charrsid1655678 and Guids }{\f1\fs20\insrsid7887376\charrsid1655678 into human readable strings.
\par AMMediaTypeToString \endash  Produces a human readable form of an AMMediaType
\par MediaTypeToString \endash  Produces a human readable form of a MediaType
\par MediaSubTypeToString \endash  Produces a human readable form of a MediaSubType
\par MediaFormatTypeToString \endash  Produces a human readable form of a MediaFormatType
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid15286429\charrsid1655678 Samples
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0\pararsid15286429 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid15286429\charrsid1655678 There are a }{\f1\fs20\insrsid1013904\charrsid1655678 few }{
\f1\fs20\insrsid15286429\charrsid1655678 samples included to show how to perform various common tasks.  Note that these samples should not be considered commercial quality, but can form the basis of your own code.
\par }{\b\f1\fs20\insrsid1013904\charrsid1655678 samples\\AsfCreate }{\f1\fs20\insrsid1013904\charrsid1655678 - A .NET sample application for creating Asf or WMV files from a collection of bitmaps
\par }\pard \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0\pararsid1013904 {\b\f1\fs20\insrsid1013904\charrsid1655678 samples\\AsfNet}{\f1\fs20\insrsid1013904\charrsid1655678  - A .NET sample application for directing DirectShow capture graphs to 
a network port to be read by Windows Media Player
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid2845617\charrsid1655678 
{\*\bkmkstart _Ref106788191}Using untested interfaces{\*\bkmkend _Ref106788191}
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid2845617\charrsid1655678 The }{\f1\fs20\insrsid1013904\charrsid1655678 WindowsMedia}{
\f1\fs20\insrsid2845617\charrsid1655678 Lib contains interfaces for virtually all of }{\f1\fs20\insrsid1013904\charrsid1655678 Windows Media }{\f1\fs20\insrsid2845617\charrsid1655678 (}{\f1\fs20\insrsid5571757\charrsid1655678 nearly }{
\f1\fs20\insrsid1013904\charrsid1655678 1}{\f1\fs20\insrsid5571757\charrsid1655678 00 }{\f1\fs20\insrsid2845617\charrsid1655678 interfaces).  Currently, however, }{\f1\fs20\insrsid1013904\charrsid1655678 NONE }{\f1\fs20\insrsid2845617\charrsid1655678 
of them have been tested.  Testing includes performing each of these on each method of the interface:
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid7887376 {\f1\fs20\insrsid2845617\charrsid1655678 1) Checking to see that the method is defined correctly according to the MSDN docs
\par 2) Change int to enum where needed
\par 3) Add any needed MarshalAs
\par 4) Verify that any needed structs are correctly defined 
\par 5) Remove unneeded "ref", add needed "out"
\par 6) (Where possible) remove IntPtr and use actual structs}{\f1\fs20\insrsid5571757\charrsid1655678  or classes}{\f1\fs20\insrsid2845617\charrsid1655678 
\par 7) Where necessary, create custom marshalers for passing structs
\par 8) Write code that calls the method, making sure that parameters that are documented to accept null, do so
\par }\pard \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 {\f1\fs20\insrsid2845617\charrsid1655678 
When 1-8 have been done for all the methods in an interface, the work is submitted to a second developer for review.  When reviewed, the interface is considered tested.
\par However, it may be that you need to use an interface that hasn't been tested yet.  All the untested }{\f1\fs20\insrsid15932462\charrsid1655678 interfaces, structs and enum are}{\f1\fs20\insrsid2845617\charrsid1655678 
 included in the source, but are wrapped within:
\par #if ALLOW_UNTESTED_INTERFACES
\par #endif
\par Release builds of our library do not expose these }{\f1\fs20\insrsid15932462\charrsid1655678 interfaces}{\f1\fs20\insrsid2845617\charrsid1655678 
.  If you want to enable all the methods, you can use #define in specific source files or globally with project properties to define th}{\f1\fs20\insrsid15932462\charrsid1655678 is constant}{\f1\fs20\insrsid2845617\charrsid1655678 
, then build your own copy of the library.  However, don't be surprised if some of the methods/interfaces that haven't been tested don't work correctly.  Also, when we eventually do test the method, we may }{\f1\fs20\insrsid15932462\charrsid1655678 
modify the declaration.}{\f1\insrsid2845617\charrsid1655678 
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid2845617\charrsid1655678 
{\*\bkmkstart _Ref106788227}The plan for additional interfaces{\*\bkmkend _Ref106788227}
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid2845617\charrsid1655678 The current plan calls for testing most of the }{
\f1\fs20\insrsid1013904\charrsid1655678 Windows Media}{\f1\fs20\insrsid2845617\charrsid1655678  interfaces.  No, not all of them.  Some interfaces are deprecated}{\f1\fs20\insrsid3149574\charrsid1655678  or undocumented}{
\f1\fs20\insrsid2845617\charrsid1655678 , some are not meant to be called from applications.  }{\f1\fs20\insrsid5571757\charrsid1655678 If there is some particular interface you want to see added, consider volunteering to test it.}{
\f1\fs20\insrsid2845617\charrsid1655678 
\par }{\f1\fs20\insrsid283711\charrsid1655678 To be informed of }{\f1\fs20\insrsid12737063\charrsid1655678 fixes and }{\f1\fs20\insrsid283711\charrsid1655678 updates}{\f1\fs20\insrsid12737063\charrsid1655678  to the library}{
\f1\fs20\insrsid283711\charrsid1655678 , subscribe to the directshownet-announce list at }{\field\flddirty{\*\fldinst {\f1\fs20\insrsid283711\charrsid1655678  HYPERLINK "http://sourceforge.net/mail/?group_id=136334" }{
\f1\fs20\insrsid13980339\charrsid1655678 {\*\datafield 
00d0c9ea79f9bace118c8200aa004ba90b02000000170000002d00000068007400740070003a002f002f0073006f00750072006300650066006f007200670065002e006e00650074002f006d00610069006c002f003f00670072006f00750070005f00690064003d003100330036003300330034000000e0c9ea79f9bace11
8c8200aa004ba90b5a00000068007400740070003a002f002f0073006f00750072006300650066006f007200670065002e006e00650074002f006d00610069006c002f003f00670072006f00750070005f00690064003d0031003300360033003300340000000000}}}{\fldrslt {
\cs15\f1\fs20\ul\cf2\insrsid283711\charrsid1655678 http://sourceforge.net/mail/?group_id=136334}}}{\f1\fs20\insrsid283711\charrsid1655678 .
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid2845617\charrsid1655678 Reporting bugs
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid12675304\charrsid1655678 Bugs in this library should be reported to }{\field\flddirty{\*\fldinst {
\f1\fs20\insrsid12675304\charrsid1655678  HYPERLINK "http://sourceforge.net/tracker/?group_id=136334&atid=735691" }{\f1\fs20\insrsid13980339\charrsid1655678 {\*\datafield 
00d0c9ea79f9bace118c8200aa004ba90b02000000170000003c00000068007400740070003a002f002f0073006f00750072006300650066006f007200670065002e006e00650074002f0074007200610063006b00650072002f003f00670072006f00750070005f00690064003d0031003300360033003300340026006100
7400690064003d003700330035003600390031000000e0c9ea79f9bace118c8200aa004ba90b7800000068007400740070003a002f002f0073006f00750072006300650066006f007200670065002e006e00650074002f0074007200610063006b00650072002f003f00670072006f00750070005f00690064003d00310033
003600330033003400260061007400690064003d0037003300350036003900310000000000000000000000000000}}}{\fldrslt {\cs15\f1\fs20\ul\cf2\insrsid12675304\charrsid1655678 http://sourceforge.net/tracker/?group_id=136334&atid=735691}}}{
\f1\fs20\insrsid12675304\charrsid1655678 .}{\f1\fs20\insrsid2845617\charrsid1655678 
\par }{\f1\fs20\insrsid12675304\charrsid1655678 Note that only bugs in the library, samples, or docs that are part of this project should be reported here.  Bugs in }{\f1\fs20\insrsid1013904\charrsid1655678 Windows Media}{
\f1\fs20\insrsid12675304\charrsid1655678  itself }{\f1\fs20\insrsid3160347\charrsid1655678 must be reported to Microsoft.}{\f1\fs20\insrsid12675304\charrsid1655678 
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid6771254 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid6771254\charrsid1655678 Links for help
\par }\pard\plain \ql \li0\ri0\sb100\sa100\nowidctlpar\faauto\rin0\lin0\itap0\pararsid6771254 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid6771254\charrsid1655678 Your best place to start is the MSDN docs (see links under "}
{\field\flddirty{\*\fldinst {\f1\fs20\insrsid6771254\charrsid1655678  REF _Ref106788285 \\h }{\f1\fs20\insrsid13980339\charrsid1655678 {\*\datafield 
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0052006500660031003000360037003800380032003800350000000000000000}}{\f1\fs20\insrsid1655678  \\* MERGEFORMAT }}{\fldrslt {\f1\insrsid6771254\charrsid1655678 Where to find the documentation}}}{
\f1\fs20\insrsid6771254\charrsid1655678 ").  If your question is about }{\f1\fs20\insrsid1013904\charrsid1655678 Windows Media}{\f1\fs20\insrsid6771254\charrsid1655678  in general, you might want to post to one of Microsoft's newsgroups (currently at }
{\field\flddirty{\*\fldinst {\f1\fs20\insrsid1013904\charrsid1655678  HYPERLINK "http://msdn.microsoft.com/newsgroups/topic.aspx?url=/msdn-files/028/201/118/topic.xml" }{\f1\fs20\insrsid13980339\charrsid1655678 {\*\datafield 
00d0c9ea79f9bace118c8200aa004ba90b02000000170000005600000068007400740070003a002f002f006d00730064006e002e006d006900630072006f0073006f00660074002e0063006f006d002f006e00650077007300670072006f007500700073002f0074006f007000690063002e0061007300700078003f007500
72006c003d002f006d00730064006e002d00660069006c00650073002f003000320038002f003200300031002f003100310038002f0074006f007000690063002e0078006d006c000000e0c9ea79f9bace118c8200aa004ba90bac00000068007400740070003a002f002f006d00730064006e002e006d006900630072006f
0073006f00660074002e0063006f006d002f006e00650077007300670072006f007500700073002f0074006f007000690063002e0061007300700078003f00750072006c003d002f006d00730064006e002d00660069006c00650073002f003000320038002f003200300031002f003100310038002f0074006f0070006900
63002e0078006d006c00000000}}}{\fldrslt {\cs15\f1\fs20\ul\cf2\insrsid1013904\charrsid1655678 http://msdn.microsoft.com/newsgroups/topic.aspx?url=/msdn-files/028/201/118/topic.xml}}}{\f1\fs20\insrsid6771254\charrsid1655678 
).  If your question is specific to this library, you should post your question post in the \'93Open Discussion\'94 forum here: }{\field\flddirty{\*\fldinst {\f1\fs20\insrsid6771254\charrsid1655678  HYPERLINK "
http://sourceforge.net/forum/forum.php?forum_id=460697" }{\f1\fs20\insrsid13980339\charrsid1655678 {\*\datafield 
00d0c9ea79f9bace118c8200aa004ba90b02000000170000003700000068007400740070003a002f002f0073006f00750072006300650066006f007200670065002e006e00650074002f0066006f00720075006d002f0066006f00720075006d002e007000680070003f0066006f00720075006d005f00690064003d003400
360030003600390037000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f0073006f00750072006300650066006f007200670065002e006e00650074002f0066006f00720075006d002f0066006f00720075006d002e007000680070003f0066006f00720075006d005f00690064003d
00340036003000360039003700000000004f0000000000000000}}}{\fldrslt {\cs15\f1\fs20\ul\cf2\insrsid6771254\charrsid1655678 http://sourceforge.net/forum/forum.php?forum_id=460697}}}{\f1\fs20\insrsid6771254\charrsid1655678 .
\par }\pard\plain \s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid10703373 \b\f1\fs26\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid2845617\charrsid1655678 Offering to help
\par }\pard\plain \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20\insrsid2845617\charrsid1655678 
There are still a number of interfaces left to test.  If you would like to help, please contact on}{\f1\fs20\insrsid3160347\charrsid1655678 e of the project administrators}{\f1\fs20\insrsid2845617\charrsid1655678  at }{\field\flddirty{\*\fldinst {
\f1\fs20\insrsid15932462\charrsid1655678  HYPERLINK "http://sourceforge.net/projects/directshownet/" }{\f1\fs20\insrsid13980339\charrsid1655678 {\*\datafield 
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5e00000068007400740070003a002f002f0073006f00750072006300650066006f007200670065002e006e00650074002f00700072006f006a0065006300740073002f00640069007200650063007400730068006f00
77006e00650074002f00000000000000000000000000}}}{\fldrslt {\cs15\f1\fs20\ul\cf2\insrsid2845617\charrsid1655678 http://sourceforge.net/projects/directshownet/}}}{\f1\fs20\insrsid2845617\charrsid1655678 .
\par }}